مقدمهای بر مجازیسازی
پیدایش مجازیسازی به اواسط دهه 60 میلادی، روزگاری که کاربران روی پردازشهای کند و نهچندان کارآمد دستهای متمرکز بودند و به ماشینهای مینفریم قدرتمندی برای شتاب بخشیدن به فرآیند پردازش اطلاعات نیازمند بودن، بازمیگردد. کاربران به یک سیستم به اشتراکگذاری چند کاربری برای انجام همزمان چندوظیفه نیازمند بودند. سیستمعامل اولیه مینفریمها که یک چنین قابلیتی ارائه میکرد، بیشازاندازه پیچیده و متداخل بود. سیستمی که برای هر ماشین یک ایمیج سیستمعامل را به شکل واحد استفاده میکرد. منابع سختافزاری و سامانههای نرمافزاری بهشدت با یکدیگر تلفیقشده بودند و پیچیدگی را دوچندان میکردند. هر زمان شرکتها تصمیم میگرفتند برای بهبود عملکرد، یک مولفه سختافزاری را نصب کنند، مجبور بودند کل سیستم را خاموش کنند. زمانی که سیستم در حال کار بود، بیشتر ماشینها میتوانستند تنها یک برنامه کاربردی در یکزمان اجرا کنند تا تداخلی به وجود نیاید. عدم انعطافپذیری و هزینه بالای منابع زیرساختی عملیاتی به یک راهحل کلیدی نیاز داشت. راهحلی که در آن یک لایه کاربردی نرمافزاری بتواند به شکل جدا از سختافزار به ایفای نقش بپردازد. این مشکلات راه را برای شکلگیری محاسبات مجازیساز هموار کرد. اصطلاح مجازیسازی، ایجاد نسخهای مجازی بهجای نسخه واقعی از موجودیتهای ملموس دنیای فناوری همچون سیستمعامل سرور، سامانههای ذخیرهساز NAS/SAN و منابع شبکه است. اگر سابقه پارتیشنبندی هارددیسک کامپیوتر خود به درایورهای مختلف را به خاطر داشته باشید، با این مفهوم آشنا هستید. زمانی که هارددیسک خود را پارتیشنبندی میکنید، آنرا به لحاظ منطقی به درایورهای مختلف تقسیم میکنید. در این وضعیت سیستمعامل به هر درایو همانند یک هارددیسک منطقی نگاه میکند، درحالیکه تنها یک هارددیسک فیزیکی روی کامپیوترتان دارید. در حقیقت، مجازیسازی علم شبیهسازی قابلیتها و عملکردهای شبکه درون یک سامانه نرمافزاری است که به ایجاد نسخهای مجازی از سامانههای فیزیکی همچون پلتفرمهای سختافزاری، منابع شبکه و ذخیرهسازها اشاره دارد. در این روش، منابع سختافزاری به شکل منطقی میان برنامههای کاربری توزیع میشوند. نرمافزارها در یک محیط زیرساختی مجازی توان پردازشی را بدون آنکه به مولفههای سختافزاری فیزیکی وابسته باشند، مصرف میکنند. در نتیجه، مجازیسازی به سازمانها اجازه میدهد صدها سرور را به همان شیوهای که سرورهای فیزیکی را سازماندهی کرده و استفاده میکند، به خدمت گیرند. این قابلیت منحصربهفرد، هزینهها را کاهش داده و مدیریت هرچه دقیقتر و بهینهشده را امکانپذیرتر میکند.
مجازیسازی چگونه کار میکند؟
در سطح ماشین، هرگونه عملیات محاسباتی در قالب اعداد باینری صفر و یک اجرا میشوند. این اعداد بیانگر وضعیت ترانزیستورهای درون پردازندههای کامپیوتر هستند که صفرها به معنای وضعیت خاموش و یکها به معنای وضعیت روشن هستند. در یک فرآیند محاسباتی تغییر وضعیت از صفر به یک و بالعکس باعث میشود تا دستورات اجراشده، محاسبات کامل شده، نرمافزارهای کاربردی اجراشده و سیستمعاملها وظایف خود را بهدرستی انجام دهند. زمانی که کاربر یک برنامه کاربردی را اجرا میکند، برنامه با سیستمعامل ارتباط برقرار کرده و سیستمعامل با منابع سختافزاری ارتباط برقرار میکند تا عملیات پردازشی بر مبنای یک سیستم محاسباتی باینری اجرا شود. اما این مطالب چه ارتباطی با مجازیسازی دارد؟ مجازیسازی با شبیهسازی چنین الگویی قادر است بستری مجازی یا به عبارت دقیقتر یک محیط مجازیسازی را پیادهسازی کرده و همانند سختافزارهای فیزیکی با تبدیل کدهای باینری (صفرها و یکها) در قالب یک کانتینر که به آن ماشین مجازی گفته میشود، بستری کارآمد را پدید آورد. هر ماشین مجازی یک محیط ایزوله شده برای سیستمعاملها و برنامههای کاربردی به وجود میآورد که هر سیستمعامل در یک ماشین مجازی مستقل از دیگری اجرا میشود. در این روش منابع سختافزاری به شکل همزمان و پویا و از طریق هایپروایزرها در اختیار ماشینهای مجازی قرار میگیرند.
سیر تکامل مجازیسازی
مجازیسازی در تعریف ساده آن به ساخت مدلی مجازی از مفاهیم مختلف فیزیکی و نرمافزاری اشاره داشته و هدف آن بهینهسازی زیرساختهای فناوری اطلاعات است. مجازیسازی اجازه میدهد سرورهای مجازی چندگانه را روی یک سختافزار ایجاد کرده، سیستمعاملهای مختلفی را به شکل مجازی روی یک کامپیوتر نصب و مدیریت کرده و حتی مرکز داده را مجازیسازی کنید. در حوزه سیستمعاملها، مجازیسازی به امکان استفاده از نرمافزار برای پیادهسازی و ساخت زیرساختی اشاره دارد که اجازه میدهد چند ایمیج متعلق به سیستمعاملهای مختلف در یکزمان روی یک سختافزار واحد اجرا شوند. درست است که این فناوری پیشینهای زیاد دارد، اما سرآغاز شکلگیری نوین آن به حدود یک دهه قبل باز میگردد که کار خود را از دنیای پردازندهها آغاز کرد و به مدیران اجازه داد به میزان قابلتوجهی از هدر رفت توان پردازشی پردازندهها ممانعت به عملآورده و به بهترین شکل سرویسدهی به کلاینتها و مشتریان را مدیریت کنند.
مجازیسازی چگونه کار میکند؟
مجازیسازی توصیفگر فناوری ویژهای است که یک برنامه کاربردی، سیستمعامل مهمان یا ذخیرهساز دادهها در حالتی انتزاعی قرار گرفته و از سختافزار یا نرمافزار زیربنایی جدا میشوند. یک استفاده کلیدی از فناوری مجازیسازی، مجازیسازی سرور است که از یک لایه نرمافزاری موسوم به هایپروایزر استفاده میکند تا سختافزاری زیربنایی را شبیهسازی کند که در بیشتر موارد حافظه، پردازنده مرکزی کامپیوتر، ورودی/خروجی و ترافیک شبکه را شامل میشود. سیستمعامل مهمان در حالت عادی با سختافزار اصلی سیستم در تعامل بوده که این ارتباط از طریق نرمافزار شبیهسازی که ارتباط با سختافزار را امکانپذیر میسازد، انجام میشود. در بیشتر موارد سیستمعامل مهمان هیچگونه اطلاعی از این موضوع ندارد که در حال اجرا روی یک سختافزار مجازی است یا روی یک سختافزار واقعی در حال اجرا است. درحالیکه عملکرد یک سامانه مجازی را نمیتوان همانند عملکرد اجرای یک سیستمعامل روی یک سختافزار واقعی در نظر گرفت، اما بااینوجود مفهوم مجازیسازی بهشدت موردتوجه شرکتها قرار گرفته، زیرا سیستمعاملهای مهمان و برنامهها وابستگی خاصی به سختافزار زیربنایی یک سیستم ندارند و روی یک سامانه مجازی عامل هم قابل اجرا هستند. برای مثال، شما میتوانید سیستمعامل ویندوز 10 را روی یک ماشین مجازی نصبکرده و در ادامه بسته کامل اندروید استودیو را روی این سیستمعامل مجازی نصبکرده و از آن استفاده کنید. اگر این سیستم حافظه کافی و پردازنده قدرتمندی داشته باشد، بدون مشکل قادر به استفاده از این نرمافزارها هستید. مجازیسازی با حذف وابستگی به زیرساخت سختافزاری، انعطافپذیری، کنترل و تفکیکپذیری هر چه بیشتر را به ارمغان میآورد. درست است که ایده مجازیسازی، نخستین بار برای سرورها ارائه شد، اما امروزه برای برنامههای کاربردی، شبکه، دادهها و دسکتاپها از این ایده استفاده میشود.
انواع مجازیسازی
این فناوری بدون مشکل خاصی منابع مجازی ایجاد میکند که این منابع از سوی مولفههای مختلفی همچون ماشینهای مجازی، سیستمعاملها، دسکتاپها، برنامههای کاربردی و کاربران استفاده میشود. این منابع مجازی میتوانند به همان شکلی استفاده شوند که منابع فیزیکی یا برنامههای کاربردی استفاده میشوند. در حال حاضر، مجازیسازی در شش حوزه مرتبط با دنیای فناوری به شرح زیر در حال ابداع شده و در حال پیشرفت است.
1. مجازیسازی شبکه: راهکاری است که به ادغام منابع در دسترس یک شبکه از طریق تقسیم پهنای باند در دسترس به کانالهایی که هر یک مستقل از دیگری بوده و قادر هستند در یک لحظه به سرور یا سایر دستگاهها اختصاص یابند، اشاره دارد. ایده مجازیسازی از طریق تقسیم شبکه به بخشهای مختلفی که مدیریت آنها پیچیدگی خاصی ندارد، تا حد زیادی شبیه زمانی است که هارددیسک خود را پارتیشنبندی میکنید. این رویکرد به دلیل اینکه مدیریت فایلها را ساده کرده و درعینحال پیچیدگیهای ملموس و رایج شبکه را به همراه ندارد، مورد استقبال شرکتها و کاربران قرار گرفته است. سازمانها از مجازیسازی شبکه بهمنظور بهینهسازی سرعت شبکه، افزایش قابلیت اطمینان آن، انعطافپذیری و گسترشپذیری بیشتر و امنیت استفاده میکنند. این مدل بهویژه در ارتباط با شبکههایی استفاده میشود که ممکن است ترافیک غیرقابلپیشبینی یا بزرگ شدن تخمین نزده شده را به همراه داشته باشند.
2. مجازیسازی فضای ذخیرهسازی: به معنای ادغام حافظه فیزیکی چند رسانه ذخیرهساز تحت شبکه در قالب یک فضای ذخیرهساز واحد که از طریق یک کنسول مرکزی مدیریت میشود. در این رویکرد تصور میکنید تنها از یک رسانه ذخیرهساز واحد برای ذخیرهسازی اطلاعات استفاده میکنید. مجازیسازی فضای ذخیرهساز بیشتر در شبکههای ذخیرهسازی SAN (سرنام Storage Are Networks) استفاده میشود. مدیران شبکه میتوانند از برنامههای کاربردی یا تجهیزات سختافزاری بهمنظور ترکیبی (هیربدی) کردن فرآیند مجازیسازی استفاده کنند.
3. مجازیسازی سرور: اصلیترین مشکلی که مدیران دپارتمانهای فناوری اطلاعات با آن دستبهگریبان هستند به تعدد سختافزارهای سرویسدهنده تک کاربره که به آنها Single Purpose Server گفته میشود، بازمیگردد. در نگاه اول ممکن است تعدد سرورها مشکل بزرگی نباشد، اما با گذشت زمان هزینههای سنگینی را به سازمانها تحمیل خواهند کرد. این هزینهها عمدتا پیرامون تجهیزات سختافزاری، برق مصرفی سرورها، سامانههای تهویه مطبوع و خنککننده مراکز داده، مکانی که سرورها در آن نگهداری میشوند و در نهایت کارشناسان حرفهای که بتوانند سختافزارها و نرمافزارها را مدیریت کنند، صرف میشود. مجازیسازی سرور حول محور پنهان کردن منابع سرور و مولفههایی همچون سرورهای فیزیکی، پردازندهها و سیستمعاملها از دید کاربران سرور است. مجازیسازی سرور سعی میکند تا جایی که امکان دارد کاربر را درگیر مدیریت جزییات پیچیده منابع سرور نکرده و در مقابل سادهترین راهکار بهاشتراکگذاری منابع و افزایش بهرهوری را بهگونهای ارائه کند که منطبق با اصل گسترشپذیری باشد. لایه نرمافزاری که سعی میکند یک مفهوم انتزاعی و ایزوله شده را ارائه کند، هایپروایزر نام دارد. متداولترین هایپروایزری که تقریبا همه کاربران با آن آشنا هستند و به نام Type 1 شهرت دارد توانایی مجازیسازی پلتفرم سختافزاری است که از طریق ماشینهای مجازی امکانپذیر میشود. برای مثال، ماشین مجازیسازی مبتنی بر لینوکس موسوم به KVM هایپروایزر لینوکسی است که همانند دیگر هایپروایزرها از الگوی Type 1 برای ارائه راهکارهای مجازی استفاده میکند. KVM یک پروژه متنباز است، در نتیجه کاربران با رعایت مفاد مندرج در مستندات این هایپروایزر قادر به استفاده از آن هستند. رقیب این هایپروایزر Xen است که هایپروایزری متنباز است که برای ماشین مجازی اوراکل و سایر پلتفرمها ارائه شده است. نوع دیگر هایپروایزرها که به آنها Type 2 گفته میشود، به یک سیستمعامل میزبان نیاز داشته و اغلب برای آزمایشها و محیطهای آزمایشگاهی استفاده میشود.
4. مجازیسازی دادهها: جزییات فنی و رایج مرتبط با دادهها همچون مدیریت دادهها، موقعیت مکانی ذخیرهسازی دادهها، دستیابی به بهترین عملکرد و نحوه قالببندی را مختصر کرده تا دسترسی به دادهها در شبکه با سرعت بالاتری انجام شده و سطح دسترسی به دادهها در یک شبکه افزایش پیدا کند.
5. مجازیسازی دسکتاپ: در حقیقت، مجازیسازی ایستگاه کاری به جای سرور است. این مدل از مجازیسازی به یک کاربر اجازه میدهد از راه دور به دسکتاپ دسترسی پیدا کند. در این روش کاربر از یک دستکاه ریزکلاینت (Thin Client) برای دسترسی از راه دور به دسکتاپ استفاده میکند. با توجه به اینکه ایستگاه کاری در پس پرده روی یک سرور مرکز داده اجرا میشود، دسترسی به شیوه ایمنتری انجام شده و قابلیت جابهجایی بالایی دارد. در این روش باید لایسنس سیستمعامل و زیرساخت آن را خریداری کنید.
6. مجازیسازی نرمافزار کاربردی: این مدل مجازیسازی به مجزا کردن لایه برنامه کاربردی از سیستمعامل اشاره دارد. در این روش برنامه کاربردی میتواند در یک وضعیت بستهبندیشده (کپسوله) اجرا شود، بدون آنکه به زیرساخت سیستمعامل نیازی داشته باشد. این تکنیک اجازه میدهد سیستمعامل ویندوز روی لینوکس و برعکس لینوکس روی ویندوز قابل اجرا باشد. دقت کنید این روش یک سطح ایزوله شده را اضافه میکند.
مجازیسازی چه مزایایی برای فناوری اطلاعات به ارمغان آورده است؟
همانگونه که پیشتر اشاره کردیم، مجازیسازی با هدف کمکردن پیچیدگیهای مربوط به تخصیص منابع اشتراکی میان سامانههای موجود ابداع شد. در حالت کلی مجازیسازی برای سازمانها مزایای زیر را به همراه خواهد داشت:
- کاهش هزینهها: بهاشتراکگذاری سختافزار با اتکا بر مجازیسازی به میزان قابلتوجهی هزینهها را کاهش میدهد، زیرا یک ماشین منفرد یا منابع میتوانند میان چند ماشین به اشتراک قرارگرفته و به این شکل هزینه تعمیر و نگهداری تجهیزات به حداقل برسد.
- نصب و استقرار سریعتر دسکتاپ و سرور: سرورها یا ایستگاههای کاری را میتوان روی ماشینهای موجود شبیهسازی کرد، به جای آنکه ماهها و ساعتها وقت صرف اینکار شود.
- ذخیرهسازی انرژی: مجازیسازی با کم کردن اندازه و ابعاد منابع مرکز داده، میزان فضای اشغالشده از سوی رکها را کمتر کرده و هزینه مصرف انرژی را به حداقل میرساند. زمانی که یک رک فضای کمتری را اشغال میکند، هزینه تعمیر و نگهداری مرکز داده را به حداقل میرساند. شبکههای مجازی زمانی که قرار است سرویسدهی به شرکتهای مختلف را انجام دهید یا تمهیدات امنیتی بیشتری را در ارتباط با فرآیند پردازش کارتهای اعتباری برای سامانههای بانکی و حفظ امنیت دادهها اتخاذ کنند، فرآیند ساخت زیرشبکههای جداگانه را ساده میکنند.
- قابلیت حمل بالا و جابهجایی راحت: مجازیسازی فرآیند انتقال پیکربندی سختافزاری یا کپی کردن پیکربندیهای سختافزاری میان سختافزارهای مختلف را ساده میکند. قابلیت جابهجایی باعث میشود تا فرآیند انتقال ماشینها به محیط کسبوکار متفاوت، اما همسو با کسبوکار فعلی بهراحتی امکانپذیر باشد. قابلیت دسترسپذیری بالا، بازیابی پس از وقوع خرابی و ساخت محیطهای تست از ویژگیهای شاخص مجازیسازی است.
- کم کردن فرآیند نصب، ارتقا و نگهداری دوباره نرمافزارها: مجازیسازی برنامههای کاربردی به شما اجازه میدهد، برنامههای حیاتی را روی سرورهایی که نیاز دارید نصب کنید که این مسئله فرآیند ارتقا نرمافزارها را ساده میکند، زیرا کپیهای مشخصی از یک برنامه کاربردی در اختیار کاربران قرار میگیرد.
افزایش کارایی عملیاتی فناوری اطلاعات
وظایفی شبیه استقرار ایستگاههای کاری و سرورها، نصب و نگهداری، به روزها یا ماهها وقت نیاز دارد. درحالیکه فناوری مجازی اجازه میدهد، اینکار در طی چند دقیقه یا چند ساعت انجام شود. رویکردی که به کارمندان دپارتمان فناوری اطلاعات یک سازمان اجازه میدهد روی وظایف خاص سازمان متمرکز شوند.
سخن پایانی
مجازیسازی را میتوان بهعنوان بخشی از یک روند کلی در صنعت فناوری اطلاعات که شامل محاسبات خودمختار (Automatic Computing) هستند، در نظر گرفت که در آن محیط فناوری اطلاعات بر مبنای محاسبات و فعالیتهایی قادر به مدیریت خود است. در این رویکرد کاربران میتوانند با پرداخت هزینه مربوط از توان پردازشی کامپیوترها که قدرتی بهمراتب فراتر از یک کامپیوتر شخصی ارائه میکنند، استفاده کنند. در این روش کاربران بر مبنای توان پردازشی که به آن نیاز دارند، هزینه مربوط را پرداخت میکنند. در مجموع باید گفت مجازیسازی در جهت متمرکز کردن کارها و وظایف مدیریتی به وجود آمد. فناوری که سعی دارد هم گسترشپذیری را بهبود بخشیده و هم بر تراکم کارها اثرگذار باشد.
به این مطلب چند ستاره میدهید؟(امتیاز: 4.5 - رای: 1)
- منبع: ماهنامه شبکه
- نویسنده: حمیدرضا تائبی